/* eslint-disable ts/no-duplicate-enum-values */
// MD类型
export enum MD_TYPE {
  年假 = 'L1',
  病假 = 'L2',
  事假 = 'L3',
  育儿假 = 'L4',
  哺乳假 = 'L4',
  婚假 = 'L4',
  产检假 = 'L4',
  陪产假 = 'L4',
  产假 = 'L4',
  丧假 = 'L4',
  带薪假 = 'L4',
  离职 = 'L7',
  调休 = 'L8',
  旷工 = 'L9',
  补卡 = 'N1',
  出差 = 'N1',
  外勤 = 'N1',
  入职 = 'N1',
  N1 = 'N1', /** 正式入场考勤类型 */
  N3 = 'N3', /** 预入场 */
}

// 考勤EXCEL对应key
export enum ATTENDANCE_EXCEL_KEY_MAP {
  A = 'employeeName', // 姓名
  B = 'department', // 部门
  C = 'applyStartTime', // 申请上班时间
  D = 'applyEndTime', // 申请下班时间
  E = 'workDate', // 出勤日期
  F = 'weekday', // 星期
  G = 'workClassification', // 班别
  H = 'workOrRest', // 休息/工作
  I = 'noCheck', // 免打卡
  J = 'checkStartTime', // 上班打卡时间
  K = 'checkEndTime', // 下班打卡时间
  L = 'vacationType', // 考勤类型
  M = 'vacationAmDuration', // 考勤类型上午时长
  N = 'vacationPmDuration', // 考勤类型下午时长
  O = 'vacationStartTime', // 考勤类型开始时间
  P = 'vacationEndTime', // 考勤类型结束时间
  Q = 'remark', // 备注
}

export enum ATTENDANCE_REQUIRED_COLUMN {
  姓名 = 'employeeName',
  出勤日期 = 'wordDate',
  上班打卡时间 = 'checkStartTime',
  下班打卡时间 = 'checkEndTime',
  考勤类型 = 'vacationType',
  考勤类型上午时长 = 'vacationAmDuration',
  考勤类型下午时长 = 'vacationPmDuration',
  考勤类型开始时间 = 'vacationStartTime',
  考勤类型结束时间 = 'vacationEndTime',
  备注 = 'remark',
}

export enum OVERTIME_REQUIRED_COLUMN {
  '申请人' = 'employeeName',
  '加班日期' = 'overTimeDate',
  '加班工作内容' = 'overTimeContent',
  '最终加班时长(小时)' = 'finalOverTimeHour',
}

// 加班EXCEL对应key
export enum OverTimeExcelKeyMap {
  A = 'serialNumber', // 序号
  B = 'applicant', // 申请人
  C = 'department', // 部门
  D = 'workPlace', // 工作地点
  E = 'projectTeam', // 项目组
  F = 'overTimeMonth', // 计入加班月份
  G = 'applyDate', // 申请日期
  H = 'overTimeDate', // 加班日期
  I = 'overTimeStartTime', // 申请加班开始时间
  J = 'overTimeEndTime', // 申请加班结束时间
  K = 'overTimeContent', // 加班工作内容
  L = 'approvalReason', // 审批依据
  M = 'approvalDate', // 审批日期
  N = 'approver', // 审批人
  O = 'actualOverTimeStartTime', // 实际加班考勤打卡开始时间
  P = 'actualOverTimeEndTime', // 实际加班考勤打卡结束时间
  Q = 'finalOverTimeHour', // 最终加班时长(小时)
  R = 'finalOvertimeDay', // 最终加班时长(天)
  S = 'overTimeAttribute', // 加班属性
  T = 'supplementStandard', // 对应餐补标准
  U = 'actualInvoiceAmount', // 实际发票数额
  V = 'recorder', // 记录人
}

// 满勤一天的时间（8小时15分制， 中午固定休息1小时15分钟，总时长9小时30分钟）
export const FULL_DAY_TIME = 570

// 正常工作制总时长（8小时制，中午固定休息1小时，总时长9小时）
export const NORMAL_DAY_TIME = 540

// 满勤半天的时间
export const FULL_HALF_DAY_TIME = 248

export enum CheckTotalVoluntaryOTimeHourEffectiveReturn {
  E1 = 'E1',
  E2 = 'E2',
  S = 'S',
}

export const OTValidatorResultRemarkMap = {
  [CheckTotalVoluntaryOTimeHourEffectiveReturn.E1]: '考勤时长小于加班申请时长',
  [CheckTotalVoluntaryOTimeHourEffectiveReturn.E2]: '考勤时长大于加班申请时长30分钟以上',
}
